package com.xhwl.centiotdata.handler.vehicle;

import com.xhwl.common.pojo.cent.vehicle.bo.config.VehicleIntegrationConfigBO;
import com.xhwl.common.pojo.cent.vehicle.bo.config.VehicleParkingInfoBO;
import com.xhwl.common.pojo.cent.vehicle.bo.feign.CreateVehicleAccessRecordsForInFeignBO;
import com.xhwl.common.pojo.cent.vehicle.bo.feign.CreateVehicleAccessRecordsForOutFeignBO;
import com.xhwl.common.pojo.cent.vehicle.bo.http.*;
import com.xhwl.common.pojo.cent.vehicle.bo.http.query.QueryAccessRecordBO;
import com.xhwl.common.pojo.cent.vehicle.bo.http.query.QueryFreeSpaceBO;

public interface IVehicleIntegrationHandler {

    default FreeSpaceBO queryFreeSpace(VehicleParkingInfoBO vehicleParkingInfoBO, QueryFreeSpaceBO queryFreeSpaceBO) {
        throw new IllegalStateException("该厂商查询空闲车位还没接入");
    }

    default ParkingLotInfoBO queryParkingLotInfo(VehicleParkingInfoBO vehicleParkingInfoBO) {
        throw new IllegalStateException("该厂商查询车场信息还没接入");
    }

    default ParkingLotAreaBO queryParkingLotArea(VehicleParkingInfoBO vehicleParkingInfoBO) {
        throw new IllegalStateException("该厂商查询车场区域还没接入");
    }

    default ParkingLotPassageBO queryParkingLotPassage(VehicleParkingInfoBO vehicleParkingInfoBO) {
        throw new IllegalStateException("该厂商查询车场通道还没接入");
    }

    default ParkingLotPayRecordBO queryPayRecord(VehicleIntegrationConfigBO vehicleIntegrationConfigBO, QueryAccessRecordBO queryAccessRecordBO) {
        throw new IllegalStateException("该厂商查询缴费记录还没接入");
    }

    default ParkingLotAccessRecordForInBO queryAccessRecordForIn(VehicleIntegrationConfigBO vehicleIntegrationConfigBO, QueryAccessRecordBO queryAccessRecordBO) {
        throw new IllegalStateException("该厂商查询车场入记录还没接入");
    }

    default ParkingLotAccessRecordForOutBO queryAccessRecordForOut(VehicleIntegrationConfigBO vehicleIntegrationConfigBO, QueryAccessRecordBO queryAccessRecordBO) {
        throw new IllegalStateException("该厂商查询车场出记录还没接入");
    }

    default void addAccessRecordsForIn(CreateVehicleAccessRecordsForInFeignBO createVehicleAccessRecordsForInFeignBO) {
        throw new IllegalStateException("该厂商feign调用车行系统增加入场记录还没接入");
    }

    default void addAccessRecordsForOut(CreateVehicleAccessRecordsForOutFeignBO createVehicleAccessRecordsForOutFeignBO) {
        throw new IllegalStateException("该厂商feign调用车行系统增加出场记录还没接入");
    }

    default void addPayRecords(ParkingLotPayRecordBO parkingLotPayRecordBO) {
        throw new IllegalStateException("该厂商feign调用车行系统增加缴费记录还没接入");
    }

}
